System and method for using an universal remote control to access extended operational functions of a device

ABSTRACT

A system and method for using an universal remote control to access extended operational functions of a device. A consumer causes the universal remote control to transmit a code data value selected from the library to a target device while observing the effect of the transmitted code data value on the target device. When the target device responds in a manner desired by the consumer, the consumer may tag the code data value that caused the desired effect and assign the tagged code data value to a programmable key on the universal remote control.

RELATED APPLICATIONS

This application is a continuation of and claims the benefit of U.S.application Ser. No. 11/492,598, filed on Jul. 25, 2006, whichapplication is a continuation of and claims benefit of U.S. applicationSer. No. 10/401,378, filed on Mar. 28, 2003, which applications arehereby incorporated by reference in their entirety.

BACKGROUND

The following relates generally to remote controls and, more particular,relates to a system and method for using an universal remote control toaccess extended operational functions of a device.

Universal remote controls, which are well-known in the art, typicallyoffer a preprogrammed set of standardized keys for use in commandingcommon operational functions, such as volume, channel, transport, etc.,for each device type supported by the universal remote control, e.g.,TV, VCR, DVD, etc. However, unlike a remote control that is suppliedwith a device, an universal remote control is often incapable ofcommanding the full range of operational functions available on adevice. In this regard, to avoid consumer confusion caused by the use ofa large number of keys on an universal remote control, manufacturers ofuniversal remote controls are often required to decide whether or not toprovide a key for commanding uncommon functions of a possible targetdevice. By way of example, a manufacturer of universal remote controlmust decide if the keypad should include a key to command selection of apreferred screen aspect ratio which may be supported by one TV,selection of closed captioning which may be supported by another TV,and/or selection of sophisticated picture-in-picture controls supportedby still another TV.

To increase the amount of operational functions that may be commandedvia an universal remote control, various methods have been proposed.Examples of such methods may be seen in U.S. Pat. No. 5,515,052,entitled “Universal Remote Control with Function Synthesis,” and U.S.Pat. No. 4,959,810, entitled “Universal Remote Control Device,” both ofwhich are assigned to the assignee of this application and both or whichare incorporated herein by reference in their entirety. While themethods disclosed in these patents have enjoyed some success, theydisadvantageously require a consumer to engage in a sometimes lengthyinteraction with an external data source, such as a reference manual,customer support hot line, or the like, to obtain numeric values whichmust then be entered into or programmed on the universal remote controlto cause the universal remote control to transmit the desiredcommand(s).

SUMMARY

To address the disadvantages and other problems associated with knownmethods for programming an universal remote control to control extendedoperational functions of a device, an improved system and method forusing an universal remote control to access extended operationalfunctions of a device is hereinafter disclosed. Generally, the describedsystem and method allows a consumer to program the universal remotecontrol to transmit one or more code data values for causing a device toperform one or more extended operational functions, e.g., operationalfunctions beyond those commonly supported by an universal remote controlor those that are uniformly found in devices of a common type. The codedata values that are made available for transmission to an intendedtarget device are selected from a library comprising a plurality of codedata values for all possible devices supported by the universal remotecontrol.

To program the universal remote control to command an extendedoperational function, the consumer causes the universal remote controlto transmit a code data value selected from the library to a targetdevice while observing the effect of the transmitted code data value onthe target device. As will be appreciated, the target device may or maynot respond to a transmitted code data value since different devices maysupport different remotely controllable, operational functions. When thetarget device responds in a manner desired by the consumer, the consumermay tag the code data value that caused the desired effect and assignthe tagged code data value to a programmable key on the universal remotecontrol. The consumer may thereafter activate a programmable key tocause the transmission of the code data value assigned to the activatedkey to cause the device to perform the extended operational functioncorresponding to the transmitted code data value. In this manner, thedescribed system and method has the advantage of allowing a consumer toquickly and conveniently program the universal remote control to commandthose extended operational functions that are: (a) supported by a targetdevice; and (b) deemed important to the consumer.

A better understanding of the objects, advantages, features, propertiesand relationships of the subject system and method will be obtained fromthe following detailed description and accompanying drawings which setforth illustrative embodiments which are indicative of the various waysin which the principles of the system and method may be employed.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the system and method for using anuniversal remote control to access extended operational functions of adevice, reference may be had to preferred embodiments shown in thefollowing drawings in which:

FIG. 1 illustrates an exemplary system in which the universal remotecontrol may be used;

FIG. 2 illustrates a top view of an exemplary universal remote controlfor use in the system of FIG. 1;

FIG. 3 illustrates a block diagram view of various components of theexemplary universal remote control of FIG. 2;

FIG. 4 illustrates a diagram of exemplary data stored in a memory of theuniversal remote control of FIG. 2;

FIG. 5 illustrates an exemplary method for using the universal remotecontrol of FIG. 2 to transmit code data values to a device in the systemillustrated in FIG. 1;

FIG. 6 illustrates an exemplary data table in which code data valuescorresponding to conventional operational functions are maintained;

FIG. 7 illustrates an exemplary data table in which code data valuescorresponding to both conventional and extended operational functionsare maintained;

FIG. 8 illustrates a flow chart diagram of an exemplary method forsetting up the universal remote control of FIG. 2 to provide access toextended operational functions;

FIG. 9 illustrates an exemplary table of key assignments resulting fromthe performance of the method illustrated in FIG. 8;

FIG. 10 illustrates another exemplary table of key assignments;

FIG. 11 illustrates another exemplary data table in which code datavalues corresponding to both conventional and extended functions aremaintained; and

FIG. 12 illustrates a table for use in assigning extended operationalfunctions to keys.

DETAILED DESCRIPTION

Turning now to the figures, wherein like reference numerals refer tolike elements, there is illustrated in FIG. 1 a system in which anuniversal remote control 100 is usable to access common as well asextended operational functions of a target device. By way of example, atarget device may be any type of device that is adapted to respond tocommands received from the universal remote control 100, such as theillustrated TV 101 or VCR 102 as well as DVD players, CD players, cablebox devices, digital video recording devices, video game devices, hometheater devices, home environment devices, personal computers, etc.

For use in remotely commanding a device to perform a common and/orextended operational function, the universal remote control 100, anexample of which is illustrated in FIG. 2, includes a standardized setof keys 202, which are typically assigned to predetermined, commonoperational functions, as well as a set of “extended” keys 204, whichare provided expressly for the purpose of being assigned an extendedoperational function, as will be described in more detail hereafter. Inthis regard, common operational functions include functions which areusually included in devices of a common device type (e.g., power, digittuning, volume control, channel up/down control, media transport, etc.)while extended operational functions include functions that are nottypically uniformly supported by devices within a common device type(e.g., closed captioning, picture-in-picture control, etc). Theuniversal remote control 100 also includes device keys, e.g., “aux,”“cbl,” “VCR,” and “TV,” the activation of which places the universalremote control 100 into a mode to transmit commands to a particular typeof device. It will be appreciated that, while illustrated as hard keys,the keys 200 and/or the keys 202 of the universal remote control 100 mayimplemented as soft keys, for example, by being displayed on an LCDtouch screen or the like.

By way of further example, referring to FIG. 3, the universal remotecontrol 100 may include, as needed for a particular application, aprocessor 300 coupled to one or more memory devices (such as a ROMmemory 308, a RAM memory 310, and/or non-volatile read/write memory306), a key matrix 302 (e.g., physical buttons, a touch screen display,or a combination thereof), an internal clock and timer 301, transmissioncircuit(s) 304 (e.g., IR and/or RF), receiver circuit(s) and/ortransceiver circuit(s) (e.g., IR and/or RF—not illustrated), a means 303to provide visual feedback to the consumer (e.g, LED, display, and/orthe like), means to provide audio feedback to the user (e.g., aspeaker—not illustrated), a power supply 307, serial I/O port (e.g., ajack or contacts—not illustrated), and a bar code scanner—notillustrated. As will be understood by those of skill in the art, thememory device(s) includes executable instructions that are intended tobe executed by the processor 300 to control the operation of theuniversal remote control 100. In this manner, the processor 100 may beprogrammed to control the various electronic components within theuniversal remote control 100, e.g., to monitor the power supply 307, tocause the transmission of signals, display icons and/or HTML pages, etc.The non-volatile read/write memory 306, for example, an EEPROM or thelike, may be provided to store setup data and parameters as necessarysuch that data is not required to be reloaded after battery changes. Itis to be understood that the memory devices may take the form of anytype of readable media, such as, for example, a Smart Card, memorystick, a chip, a hard disk, a magnetic disk, and/or an optical disk.Still further, it will be appreciated that some or all of theillustrated memory devices may be physically incorporated within thesame IC chip as the microprocessor 300 (a so called “microcontroller”)and, as such, they are shown separately in FIG. 3 only for the sake ofclarity.

To cause the universal remote control 100 to perform an action, theuniversal remote control 100 is adapted to be responsive to events, suchas a sensed consumer interaction with the key matrix 302, receipt of atransmission, etc. In response to an event appropriate instructionsand/or data within the memory devices are executed and/or accessed. Forexample, when a command key is activated on the universal remote control100, the universal remote control 100 may retrieve a code data valuecorresponding to the activated command key from a memory device andaccess instructions to transmit the retrieved code data value to adevice in a format recognizable by the device. It will be appreciatedthat the instructions within the memory devices can be used not only tocause the transmission of command codes and/or data to the devices butalso to perform local operations. While not limiting, local operationsthat may be performed by the universal remote control 100 includedisplaying information/data, favorite channel setup, macro button setup,command function key relocation, etc. Since examples of local operationscan be found in U.S. Pat. Nos. 5,481,256, 5,959,751, and 6,014,092 theywill not be discussed in greater detail herein. A still further localoperation, described hereinafter, allows the consumer to program theuniversal remote control 100 to access extended operational functions ofa device.

By way of still further example, an exemplary ROM memory 308 may storeboth program instructions 402, e.g., to effect local operations of theuniversal remote control 100, and code data tables 404 which comprise alibrary of information for use in transmitting code data values totarget devices. In the example illustrated in FIG. 4, the code datatables 404 are divided into two groups: descriptions of the transmissionformatting used by different target appliance manufacturers 406; anddata tables 408 containing code data values to be transmitted to controloperational functions of a device. Storing information in this manner ispreferred, although not required, as it optimizes use of memory space,e.g., since Sony uses a common IR transmission formatting and encodingarrangement for all its products, it is only necessary to store the Sonytransmission formatting information 410 once, even though the library inthe remote control includes code data values for both a Sony TV 412 anda Sony VCR 414.

To program the universal remote control 100 to access the commonoperational functions of a device, the consumer may use one or moreknown methods for setting up an universal remote control. In thisregard, examples of known methods for performing an initial setup of anuniversal remote control may be found in, for example, the abovementioned U.S. Pat. No. 4,959,810 as well as U.S. Pat. No. 5,614,906,entitled “Method for Selecting a Remote Control Command Set,” or U.S.Pat. No. 4,703,359 entitled “Universal Remote Control Unit with ModelIdentification Capability,” each of which is incorporated herein byreference in its entirety.

Once the universal remote control 100 has been setup to control thecommon operational functions of one or more intended target devices, theconsumer may then initiate an extended setup mode for the purpose ofprogramming the universal remote control 100 to allow for the commandingof any extended operational functions of the same intended targetdevice(s). In the extended setup mode, the consumer generally commandsthe universal remote control 100 to access additional code data valuesthat may be available for a specific device, which device has beenpreviously identified to the universal remote control 100 during theinitial setup phase, and to transmit the accessed code data values tothe device. Accessed code data values may be transmitted to the device,for example, one by one in sequence, either under the manual control ofthe consumer via activation of a “step” key or automatically atpredetermined intervals. Still further, the sequence in which the codedata values are accessed and transmitted may be such that an installedbase is considered, i.e., code data values for commanding extendedoperational functions that have a higher percentage of inclusion indevices of a common device type are accessed and transmitted first. Ascode data values are being accessed and transmitted to the device, theconsumer observes the reaction of the device and whenever a desirableresponse is invoked, the consumer may take action to assign the codedata value just transmitted to one of the group of extended keys 204. Ifdesired, code data value for use in controlling extended functions mayalso be assigned to override the default functions assigned to keys 202which are part of the standard key set.

With reference to FIG. 5, once the universal remote control 100 has beensetup to command the operational functions of a device, the programming402 of the universal remote control 100 is operational to be responsiveto activation 502 of a key. Specifically, the programming 402 mayrespond to activation 502 of a key by interrogating 504 a key matrix 302to determine which key or “scan code” was activated. Based on the scancode, the previously entered setup values (e.g., device brand/modelentered as part of the initial setup procedure as stored in RAM 310 ornon-volatile memory 306), and the device type or “mode” the universalremote control 100 is currently set to control (e.g., TV, VCR, Cable,etc.) the programming 402 determines which operational function is beingrequested (e.g., Power) and from which data table entry 506 (e.g., RCATV) the code data value corresponding to that operational functionshould be retrieved. As previously noted, the data table 506 includes apointer to the set of formatting information 508 (e.g., RCA) to be usedin sending the retrieved code data value to the device. Provided withthis information, the programming is then able to cause the code datavalue to be transmitted in a pattern (e.g., to pulse the IR signalingmeans 304) that will be recognized by the intended target device (e.g.,an RCA TV set 510 as a “Power” command).

With respect to common operational functions, FIG. 6 illustrates anexample of a conventional data table in greater detail. It should benoted that the operational function labels shown in the first column ofthe illustrated data table are presented only for ease of reference asthese labels would not be part of the actual data stored in ROM memorysince, in practice, the intended resulting operational function of acode data value is implicit by its position in the table whichcorresponds to a scan code. As described earlier, each device entry(i.e., column in the table 412) includes a header value 602 designatingthe formatting that is to be used to transmit code data values for thatdevice, followed by a list of code data values 604 corresponding to eachof the key functions supported by the universal remote control 100. Ingeneral, the header information 602 may also include any fixed datavalues (e.g., a manufacturer identity) which are to be sent as part ofevery command transmission, which fixed data values have not beenillustrated for the sake of clarity. The reader will also note that thetable shown is for TV devices and thus, for example, does not includecode data values for common transport functions such as play, rewind,fast forward, etc. Similarly, tables for other device types may excludevarious other key function which do not apply to that class of device:the program software 402 takes this into account when mapping key scancodes to table entry locations. When extended operational functions areavailable to be controllable through use of the universal remote control100, the data table would likewise be extended, as illustrated by way ofexample in FIG. 7, to include those extended operational functions. Inthe illustrated, example data table 412′, up to sixteen additional,extended operational functions 702 are shown as being available for eachdevice. Since these additional, extended operational functions would notbe standard across all devices, they are not amenable to beingidentified by specific labels and, as such, a generic “Extra”designation has been used. In instances where a particular device doesnot support sufficient additional operational functions to completelyfill all positions in the table 412′, entries in the table may be filledwith a duplicate of a previous operation function, as illustrated at706, or by a “null” value such as, for example, all ones or all zeros.It will also be appreciated by those of ordinary skill in the art thatalternative methods such as, for example, prefixing each device tablewith a counter indicating how many entries are present, interpretationof a null value as an end of data marker truncating the series ofentries, etc., may be applied in the management of this data whereadvantageous.

Since the universal remote control 100, by design, fails to have keyssufficient to be mapped to each of the additional, extended operationalfunctions, (e.g., sixteen extra functions are illustrated as beingprovided for each device while there are only nine keys 204 available onthe remote control available for assignment), provision is to be made toallow the consumer to select which of the additional, extendedoperational functions the consumer desires to assign to which key, andto store that information for use during future operation of theuniversal remote control 100.

To allow the consumer to select which of the additional, extendedfunctions the consumer desires to assign to which key, after theconsumer has completed the initial setup of the universal remote control100 to operate the standard functions of one or more intended targetdevices, the extended configuration mode may be entered, for example, byentering a special setup code such as by activating the “9,” “7, ” and“9” keys on the universal remote control keypad. In response to theconsumer entering the extended setup mode, the programming 402 mayprovide for the consumer to individually step through all of theavailable, extended operational functions, i.e., code data values,available for an intended target device (i.e., the device setup in theuniversal remote control 100 for the current device mode of theuniversal remote control 100), test the response of the target device toeach transmitted code data value, and select those code data values theconsumer wishes to assign to one or more of the programmable keys(extended keys 204 or standard key 208). In the example illustrated inFIG. 8, the consumer may manually advance through the code data valuesto test each extended operational function by pressing the “channel up”key 206. When stepping through code data values, it is preferred thatany code data values that have already been assigned to a programmablekey (extended keys 204 or standard key 208) are automatically skipped.If the user observes a desirable reaction from that target device inresponse to the transmission of a code data value, the consumer mayactivate one of the “Extended Function” keys 204 (labeled “1” through“9”), or one of the keys 202, “instead of pressing “channel up,” towhich the code data value just transmitted is then automaticallyassigned. The consumer may exit the extended function setup programming,for example, by activating the “Setup” button 208. The extended functionsetup programming may also be caused to automatically exit when the endof the table 412′ has been reached or if there is no action by theconsumer for a predetermined time, such as thirty seconds. It will alsobe appreciated that variations of this algorithm are possible, forexample, the extended function setup programming may step though theavailable extended functions automatically at predetermined (or userselectable) intervals instead of waiting for a consumer to manuallyactivate a key, the programming may loop back rather than exit when theend of the table 412′ is reached, the programming may allow the consumerto manually step (or change the automatic stepping) in both a forwardand backward direction through the available extended operationalfunctions (e.g., by activating the “channel down” as well as “channelup” keys), the programming may not skip extended functions which arealready assigned, etc.

To store extended operational function selections made by a consumer,several methods may be used. For example, as illustrated in FIG. 9, atable 902 can be maintained, e.g., in non-volatile memory, that servesto cross reference the physical scan codes of the extended function keysto logical scan codes 906 which are then, in turn, used to access thecode data values 702 for each device. In the example illustrated in FIG.9, if a TV device corresponding to set up code “002” was setup to beactive in the universal remote control 100 and extended key number “6”was sensed to have been activated, the programming 402 would firstinspect the table of FIG. 9 at row 910 to ascertain from the TV devicecolumn at entry 912 that the desired extended operational function isthe extended operational function that was stored at “Extra D” in the TVdevice command data table 412′ and then use that value (i.e., as thelogical scan code) to retrieve the code data value 704 to be transmittedfor TV device “002” (e.g., “52” from FIG. 7).

A further method for storing extended operational function selectionsmade by a consumer is illustrated in FIG. 10. In accordance with thisalternative method, a key reassignment table 1002 may be maintained,e.g., in non-volatile memory, which includes one or more records 1004each of which comprises a plurality of data fields in which ismaintained data that is indicative of a key scan code 1006, a devicetype 1008, a setup code 1010, and a code data value 1012 to betransmitted in response to activation of the key corresponding to thekey scan code 1006. Thus, in keeping with this method, whenever a key ispressed, the programming 402 would first search the reassignment table1002 for a match on the key scan code generated by the activated keyand, if a match is found, the code data value indicated by the keyreassignment table 1002 is transmitted. If, however, no match is found,the programming 402 would process the key scan code in a manner such asdescribed earlier. It will be appreciated that, in certain applications,this approach offers more flexibility since it allows extra functions tobe assigned to any key, not just the extended keys 204 provided for thatspecific purpose. This table structure may also be commonly shared byother features of the remote control such as for example, the “KeyMover” feature that is described in commonly assigned U.S. Pat. No.6,195,033.

Still further, as illustrated in FIG. 11, a fixed set of operationalfunctions may be provided across every device model in a table 1102. Ininstances where a particular device does not offer a particularoperational function, entries in the table corresponding to thatoperational function may be filled with a duplicate of a similaroperational function, as illustrated at 1104, or by a “null” value, asillustrated at 1106. By way of example only, a “null” value may beindicated for a device by being represented using all ones or zeros.Table management may also be performed using any of the methodsdescribed previously with respect to the table illustrated in FIG. 7. Aswill be appreciated, using this approach will still result in moreoperational functions being available than keys on which to place them.Therefore, consumers should still be provided with a means to select andassign to available keys subsets of those operational functions (i.e.,the code data values corresponding to the operational functions) deemedmost useful by them.

To select and assign operational functions to available keys using thetable illustrated in FIG. 11, any of the methods previously describedcould be used. Furthermore, since the operational functions offered areknown in the case of the table illustrated in FIG. 11, the consumer canbe provided with a printed or otherwise viewable cross-reference table1202, an example of which is illustrated in FIG. 12, and the extendedsetup operation may consist simply of initiating an extended setupprogramming mode and then entering into the universal remote control 100one of the code numbers 1204 that is representative of an available,extended operational function as well as an indication of a key to whichthe code data value corresponding to the code number 1204 is to beassigned. The results of these mapping indications may then be stored ina table using a format similar to the table 902 illustrated in FIG. 9.

It is to be further appreciated that a mapping table, such as mappingtable 902, can serve as a “user profile” so that, for example, shouldthe consumer purchase a new device at some time in the future, e.g., toreplace an old device, the functionality indicated as being desirablefor a reference device, e.g., the old device, can be automaticallyincluded as part of a table entry for the new device. Populating themapping table 902 for the new device considering the selections for areference device, typically of the same device type, may be performedautomatically (or at consumer discretion) as part of the programmingthat is used to initially setup the universal remote control 100 tocommand the operational functions of the new device. In the case wherethe universal remote control 100 has been setup to control multipledevices of the same device type, provision may be made to allow theconsumer to select which of the multiple device setups is to be used asthe reference setup. Once the mapping table is populated in this manner,the consumer may then edit the assignments should the new device fail tosupport previously specified operational functions, should the consumerdesire to change the extended operational functions supported, etc. Itis also contemplated that the mapping table 902, as well as other storedsetup information, may be transferable between universal remote controls100 to ease in the setting up of multiple universal remote controls 100.Still further, it is contemplated that a unique table can be maintainedfor each consumer that is to use the universal remote control 100, incases where the universal remote control 100 is adapted to recognizeindividual users thereof, so that each consumer user can have access tothose extended operational functions that are personally desirable.Finally, it will be appreciated that the universal remote control 100may be provided with communications capabilities whereby the data thatpopulates a composite operational function table, illustrated by way ofexample in FIGS. 7 and 11, may be updated. An example of an universalremote control having such communication capabilities is described inthe commonly assigned U.S. Pat. No. 4,959,810.

While various embodiments of a system and method for using an universalremote control to access extended operational functions of a device havebeen described in detail, it will be appreciated by those skilled in theart that various modifications and alternatives to those details couldbe developed in light of the overall teachings of the disclosure. Forexample, it should be appreciated that any of the above describedmethods can be used alone or in combination to setup an universal remotecontrol. Additionally, the functionality of the universal remote controlcan be included in other devices such as PDAs, personal computers, homedevices, or the like. Accordingly, it will be understood that theparticular arrangements and procedures disclosed are meant to beillustrative only and not limiting as to the scope of the inventionwhich is to be given the full breadth of the appended claims and anyequivalents thereof.

What is claimed is:
 1. A non-transient, computer readable media havinginstructions which, when executed by a processing device of a universalcontrolling device, perform steps for commanding one or more functionaloperations of a target one of a plurality of controllable devices, theinstructions performing steps comprising: receiving a signal indicativeof an activation of a configurable input element of the universalcontrolling device; receiving user identity data into the universalcontrolling device; and using by the universal controlling device thereceived user identity data and the received signal indicative of anactivation of the configurable input element of the universalcontrolling device to transmit a first set of one or more command codesfrom a command code set for controlling one or more first functionaloperations of the target one of the plurality of controllable devices inresponse to the received user identity data being representative of afirst user of the universal controlling device and to transmit a secondset of one or more command codes from the command code set forcontrolling one or more second functional operations of the target oneof the plurality of controllable devices in response to the receiveduser identity data being representative of a second user of theuniversal controlling device; wherein the first set of one or morecommands was directly mapped by the first user of the universalcontrolling device to the configurable input element, the second set ofone or more commands was directly mapped by the second user of theuniversal controlling device to the configurable input element, thefirst set of the one or more command codes from the command code set andthe one or more first functional operations of the target one of theplurality of controllable devices are different than the second set ofthe one or more command codes from the command code set and the one ormore second functional operations of the target one of the plurality ofcontrollable devices, the instructions receive a signal indicative of anactivation of a mode input element of the universal controlling deviceused to place the universal controlling device into a one of a pluralityof operating modes in which the universal controlling device is operableto transmit command codes to control functional operations of the targetone of the plurality of controllable devices, and the instructions usethe signal indicative of the activation of the mode input element of theuniversal controlling device to select the command code set for use bythe universal controlling device when transmitting to the target one theplurality of controllable devices either the first set of command codesor the second set of command codes.
 2. The non-transient, computerreadable media as recited in claim 1, wherein the first and second setof one or more command codes from the command code set comprises one ormore command codes for use in controlling a one or more extendedfunctional operations of the target one of the plurality of controllabledevices and wherein the one or more command codes for use in controllingthe one or more extended functional operations of the target one of theplurality of controllable devices are unmapped to any input element ofthe universal controlling device prior to the one or more command codesbeing mapped to the configurable input element by the first user and thesecond user.
 3. The non-transient, computer readable media as recited inclaim 1, wherein the plurality of operating modes of the universalcontrolling device comprises at least a first mode for transmittingcommands to a television and a second mode for transmitting commands toa set top box.
 4. The non-transient, computer readable media as recitedin claim 1, wherein the configurable input element comprises a hard keyof the universal controlling device.
 5. The non-transient, computerreadable media as recited in claim 1, wherein the configurable inputelement comprises a soft key of the universal controlling device.